@startuml
namespace types {
    class AWP << (S,Aquamarine) >> {
        + AWPType string
        + Entrypoint Entrypoint

    }
    class Common << (S,Aquamarine) >> {
        + Status bool
        + ResourceIds []string
        + RqUUID string
        + ResourceId string
        + Timestamp int64
        + Version Version
        + FunctionCode string
        + StageCode string
        + Content string

    }
    class Endpoint << (S,Aquamarine) >> {
        + URL string
        + Type EndpointType
        + Description string

    }
    class Entrypoint << (S,Aquamarine) >> {
        + Src string
        + JS string
        + CSS string

    }
    class Error << (S,Aquamarine) >> {
        + RqUUID string
        + ProjectCode string
        + StageStatus string
        + FunctionStatus string
        + Content string
        + Status string

    }
    class InstanceAttributes << (S,Aquamarine) >> {
        + ResourceID string
        + Content string

    }
    class InstanceAttributesContent << (S,Aquamarine) >> {
        + Security InstanceAttributesSecurity

    }
    class InstanceAttributesSecurity << (S,Aquamarine) >> {
        + Endpoints string

    }
    class ResourceName << (S,Aquamarine) >> {
        + Partition string
        + Service string
        + Region string
        + AccountID ProjectID
        + ProjectID string
        + ResourceID string

    }
    class ResourceResponse << (S,Aquamarine) >> {
        + Error *StatusResponseError
        + Resources []ResourceStatus

    }
    class ResourceStatus << (S,Aquamarine) >> {
        + ResourceId string
        + ResourceStatus string
        + ResourceStatusReason string
        + ResourceStatusCode string

    }
    class SSPMessage << (S,Aquamarine) >> {
        + StageStatus string
        + InstanceUUID string
        + FunctionStatus string
        + AWP *AWP
        + ResourceStatus string

    }
    class SSPPartnerMessage << (S,Aquamarine) >> {
        + Tenant string
        + ProjectCode string

    }
    class StatusResponseError << (S,Aquamarine) >> {
        + Code string
        + Message string

    }
    class Step << (S,Aquamarine) >> {
        + Name string
        + Status []string
        + Error bool
        + Content <font color=blue>map</font>[string]string

    }
    class Task << (S,Aquamarine) >> {
        + RN ResourceName
        + TN TaskName
        + Status StatusValue
        + Endpoints []Endpoint

    }
    class Version << (S,Aquamarine) >> {
        + Major int
        + Minor int
        + Patch int
        + Build int

    }
    class types.Compose << (T, #FF7700) >>  {
    }
    class types.EndpointType << (T, #FF7700) >>  {
    }
    class types.ProjectID << (T, #FF7700) >>  {
    }
    class types.StatusValue << (T, #FF7700) >>  {
    }
    class types.TaskName << (T, #FF7700) >>  {
    }
}
"types.Common" *-- "types.SSPMessage"
"types.Common" *-- "types.SSPPartnerMessage"


"__builtin__.string" #.. "types.Compose"
"__builtin__.string" #.. "types.EndpointType"
"__builtin__.string" #.. "types.ProjectID"
"__builtin__.string" #.. "types.StatusValue"
"__builtin__.string" #.. "types.TaskName"
@enduml
